********************
*
* SCORER 
*
********************
*
 ORG $1F28 
*
DIF EQU $9EE 
CLLO EQU $9DA
CLMID EQU $9DB
CLHI EQU $9DC
TN EQU $31D
SN EQU $31E
BUFLO EQU $328
BUFHI EQU $329
READ EQU $33D
WRITE EQU $352
FCOMP EQU $EBB2
CROUT EQU $FD8E
MOVFM EQU $EAF9
PRNTFAC EQU $ED2E
MOVMF EQU $EB2B
ABS EQU $EBAF
SCLR EQU $FC58
*
DIFTAB DFB $20,$40,$60,$80,$A0,$C0,$D0,$FF
*
SCOREPRINT JMP SETFAC
SHOWSCORES JMP DISPLAY
SETFAC LDA #$98 
 STA $9D
 LDA #0
 STA $A1
 STA $A2
 LDA CLHI
 STA $9E
 LDA CLMID
 STA $9F
 LDA CLLO
 STA $A0
SETARG LDA #$90
 STA $A5
 LDA #0
 STA $A6
 STA $A9
 STA $AA
 JSR DIFIX
 LDA $9D
 JSR $E982 ;MULT
 JSR ABS
 JSR STORAC
 LDA #$B 
 STA $25
 JSR CROUT
 LDA #15
 STA $24
 JSR PRNTFAC ;PRINT IT
 JSR COMPARE
 RTS
*
* 
DIFIX LDA #1
 STA $A7
 LDX DIF
 LDA DIFTAB,X
 STA $A8
 RTS
*
*
*
*
STORAC LDY #$22 
 LDX #$F0
 JSR MOVMF ;STORE FP ACC.
 RTS
*
*
COMPARE LDA #$F 
 STA SN
 LDA #0
 STA BUFLO
 LDA #$20
 STA BUFHI
 LDA #$17
 STA TN
 JSR READ
 DEC SN
 INC BUFHI
 JSR READ
 LDX #0
MVT LDA $22F0,X
 STA $21F0,X ;MOVING ACC. 
 INX
 CPX #5
 BNE MVT
 LDA #18
 STA $25  
 JSR CROUT
 JSR MSGOUT
 DFB $8D
 ASC "PRESS ANY KEY..."
 DFB 0
WT1 BIT $C000
 BPL WT1
 LDA #0
 STA $C010
RESAC LDY #$21
 LDA #$F0
 JSR MOVFM ;RESTORE FP ACC.
CMPHI LDA #$E0
 LDY #$21
 JSR FCOMP
 BEQ NEWHI
 CMP #1
 BEQ NEWHI
CMPMID LDA #$D0
 LDY #$21
 JSR FCOMP
 BEQ NEWMID
 CMP #1
 BEQ NEWMID
CMPLOW LDA #$C0
 LDY #$21
 JSR FCOMP
 BEQ NEWLO
 CMP #1
 BEQ NEWLO
NOCHANGE JSR DISPLAY
 RTS
 NOP
*
*
*
NEWHI LDX #0
MVSCH LDA $21D0,X
 STA $21C0,X
 LDA $21E0,X
 STA $21D0,X
 INX
 CPX #15 
 BNE MVSCH
 LDX #$E0
 LDY #$21
 JSR MOVMF
 LDA #$E5
 STA NAMER+1
 STA NAM1+1 
 JMP GETNAME
*
* ADJUST NM FOR PROPER PRINT
*
NEWMID LDX #0
MVSCM LDA $21D0,X 
 STA $21C0,X
 INX
 CPX #15 
 BNE MVSCM
 LDX #$D0
 LDY #$21
 JSR MOVMF
 LDA #$D5
 STA NAMER+1
 STA NAM1+1
 JMP GETNAME
*
*
NEWLO LDX #$C0
 LDY #$21
 JSR MOVMF
 LDA #$C5 
 STA NAMER+1
 STA NAM1+1
 JMP GETNAME
*
*
GETNAME JSR SCLR
 JSR MSGOUT
 DFB $8D
 ASC "TYPE IN YOUR NAME. (UP TO 10 LETTERS) "
 DFB $8D 
 ASC ".... PRESS RETURN WHEN FINISHED....."
 DFB $8D,$8D,0
 LDX #0
KEY JSR $FD0C
 CMP #$8D
 BEQ NAM0   
NAMER STA $210C,X ;CHANGES 
 JSR COUT
 INX
 CPX #10
 BNE KEY
NAM0 LDA #0 
NAM1 STA $210C,X ;CHANGES  
 LDA #$17
 STA TN
 LDA #$E
 STA SN
 LDA #$00
 STA BUFLO
 LDA #$21
 STA BUFHI
 JSR WRITE
*
*
DISPLAY JSR SCLR  
 JSR MSGOUT
 DFB $8D
 ASC "       TOP THREE SCORES"
 DFB $8D
 DFB $8D
 DFB $8D
 DFB $8D,0
 LDX #0 
LH LDA $21E5,X
 BEQ FLH
 JSR COUT
 INX
 CPX #10 
 BNE LH
FLH LDA #15 
 STA $24  
 LDA #$E0
 LDY #$21
 JSR MOVFM
 JSR PRNTFAC
 JSR CROUT
 JSR CROUT
*
*
LM LDA $21D5,X
 BEQ FLM
 JSR COUT
 INX
 CPX #10 
 BNE LM 
FLM LDA #15 
 STA $24  
 LDA #$D0
 LDY #$21
 JSR MOVFM
 JSR PRNTFAC
 JSR CROUT
 JSR CROUT
*
*
LL LDA $21C5,X
 BEQ FLL
 JSR COUT
 INX
 CPX #10 
 BNE LL 
FLL LDA #15 
 STA $24  
 LDA #$C0
 LDY #$21
 JSR MOVFM
 JSR PRNTFAC
 BIT $8D0
 BPL WT2
 RTS
WT2 BIT $C000
 BPL WT2
 LDA #0
 STA $C010
 RTS
*
*
 ORG $8F70 
*
*
***********************
*
* STRING PRINTER
*
***********************
*
*
TEM EQU $FA
COUT EQU $FDED
*
MSGOUT PLA 
 STA TEM
 PLA
 STA TEM+1
 LDY #0
LOOP INC TEM
 BNE SKIPADD
 INC TEM+1
SKIPADD LDA (TEM),Y
 BEQ MSGRTS
 ORA #$80
 JSR COUT
 JMP LOOP
MSGRTS LDA TEM+1
 PHA
 LDA TEM
 PHA
 RTS
*
*
 ORG $21C0
OLDSCORES DFB $91,1,0,0,0
 ASC "D.SMITH"
 DFB 0,0,0,0   
 DFB $91,2,0,0,0
 ASC "I.JONES"
 DFB 0,0,0,0   
 DFB $91,3,0,0,0 
 ASC "ZORRO"
 DFB 0,0,0,0,0,0   
